Drop the Big GDK Lock
authorEmmanuele Bassi <ebassi@gnome.org>
Fri, 2 Feb 2018 15:34:40 +0000 (16:34 +0100)
committerEmmanuele Bassi <ebassi@gnome.org>
Sat, 3 Feb 2018 11:07:10 +0000 (12:07 +0100)
commit888dfe499d92a434c3ce703df7057c4703a6c75e
tree91e393aadfe75f32a819f9e78deac024977918dd
parentc655759cefa56efdb0cb943bb5dada3ff75a963c
Drop the Big GDK Lock

GDK has a lock to mark critical sections inside the backends.
Additionally, code that would re-enter into the GTK main loop was
supposed to hold the lock.

Back in the Good Old Days™ this was guaranteed to kind of work only on
the X11 backend, and would cause a neat explosion on any other GDK
backend.

During GTK+ 3.x we deprecated the API to enter and leave the critical
sections, and now we can remove all the internal uses of the lock, since
external API that uses GTK+ 4.x won't be able to hold the GDK lock.

https://bugzilla.gnome.org/show_bug.cgi?id=793124
25 files changed:
gdk/broadway/gdkeventsource.c
gdk/mir/gdkmireventsource.c
gdk/quartz/gdkeventloop-quartz.c
gdk/quartz/gdkevents-quartz.c
gdk/wayland/gdkeventsource.c
gdk/win32/gdkevents-win32.c
gdk/x11/gdkdisplay-x11.c
gdk/x11/gdkeventsource.c
gtk/gtkapplication.c
gtk/gtkbookmarksmanager.c
gtk/gtkdialog.c
gtk/gtkfilechooserwidget.c
gtk/gtkfilesystem.c
gtk/gtkfilesystemmodel.c
gtk/gtkmain.c
gtk/gtknativedialog.c
gtk/gtkprinter.c
gtk/gtkprintoperation-portal.c
gtk/gtkprintoperation-unix.c
gtk/gtkprintoperation.c
gtk/gtkrecentmanager.c
gtk/gtktreeview.c
modules/input/gtkimcontextmultipress.c
modules/printbackends/cups/gtkprintbackendcups.c
modules/printbackends/file/gtkprintbackendfile.c